Java虚拟机(三)——类文件结构

1.常量池(constant pool)中主要存放两大类常量:字面量(literal)和符号引用(symbolic references)。
1) 字面量:比较接近常量的概念,如文本字符串,声明为final的常量值等。
2) 符号引用:类和接口的全限定名(fully qualified name),成员变量(字段)的名称和描述符(descriptor),方法的名称和描述符。
当虚拟机运行时,需要从常量池中获得对应的符号引用,再在类创建时或运行时解析到具体的内存地址之中。

字段(field):即成员变量,包括类变量和实例变量。但不包括方法内部声明的局部变量。
全限定名:仅将类全名中的“.”替换成“/”,用“;”表示全限定名结束。
简单名称:没有类型和参数修饰的方法或字段名称。
描述符:用来描述字段的数据类型、方法参数列表(包括数量、类型以及顺序)和返回值。根据描述符的规则,
(1) 基本数据类型以及无返回值的void类型都用一个大写字符来表示;
(2) 对象类型则用字符L加对象的全限定名来表示;
(3) 数组类型的每一个维度用“[”来表示;
(4) 描述方法时,先将参数列表的描述符放在“()”中,再将返回值的描述符放在括号后面;